ci: extend semver check to all features except local#832
Merged
Conversation
alexhancock
approved these changes
May 5, 2026
jrmelsha
added a commit
to UserGeneratedLLC/rmcp-rust-sdk
that referenced
this pull request
May 13, 2026
Brings in upstream rmcp v1.7.0: - fix(rmcp): flatten Resource variant of PromptMessageContent (modelcontextprotocol#843) - fix: reply -32700 on stdio parse errors instead of closing (modelcontextprotocol#833) -- JsonRpcError.id is now Option<RequestId> per MCP spec - chore(rmcp): remove dependency on chrono default features (modelcontextprotocol#829) - fix: idle-timeout log level demoted to debug (modelcontextprotocol#824) - feat: task-based stdio examples (modelcontextprotocol#839) - chore(deps): askama 0.15 -> 0.16 (modelcontextprotocol#830) - ci: extend semver check to all features except local (modelcontextprotocol#832) Conflict resolution: - crates/rmcp/CHANGELOG.md: kept fork's bare-boolean Unreleased entry, inserted upstream's 1.7.0 release section beneath it - crates/rmcp/Cargo.toml: kept fork's chrono 0.4.44 over upstream's 0.4.38 pin, but adopted upstream's default-features = false + features = ["serde", "now"] from modelcontextprotocol#829 -- both intents preserved - crates/rmcp/src/service.rs: kept fork's METHOD_NOT_FOUND demotion to debug (ab4ccdb) and applied upstream's JsonRpcMessage::error signature change to Some(id) per modelcontextprotocol#833 Workspace bumped to 1.7.0 by upstream's release-plz commit; fork crates rmcp + rmcp-macros track that automatically via workspace = true. anthropic-ext, JsonAndArtifact wrapper, bare-bool schema normalisation, channel permission relay, and the rest of the fork-only surface are unchanged. cargo check + cargo test pass with the full anthropic-ext + server feature set; test_message_schema absorbs the JsonRpcError.id Option change cleanly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation and Context
CI's SemVer Check job currently only validates the default feature set. This exception exists because the
localfeature intentionally changes the public API, which could lead to false positives if checked. Unfortunately, this means that other non-default features liketransport-streamable-http-server,auth, andtransport-streamable-http-client-reqwestalso go unchecked, even though they are stable public APIs that downstream users rely on. #824 (comment) highlighted this issue. A breaking change to a transport module wouldn't have been caught by CI.This PR adds a second
cargo semver-checksinvocation to the existingsemverjob. It enables every published feature except forlocal. The feature list is generated during the job usingcargo metadataandjq, filtering outlocaland any internal__-prefixed features. This approach is consistent with thetest-no-localjob already in this workflow, maintaining the same method for handling thelocalexception. The check for default features is kept as a separate step, ensuring that failures from the typical user experience are easy to read in CI logs.How Has This Been Tested?
CI passes
Breaking Changes
CI-only change
Types of changes
Checklist
Additional context